package sorting;

public class InsertionSort {

	public int[] insertionSort(int[] array){

		
		int finalDaLista = 0;

		while (finalDaLista < array.length-1 ) {
			int proximoElemento = array [finalDaLista + 1];
			int indiceDoProximoElemento = finalDaLista + 1;
			for (int i = finalDaLista ; i >= 0; i--){
				if (proximoElemento < array[i]){
					array = swap(array, indiceDoProximoElemento, i);
					indiceDoProximoElemento --;
				}
				else {
					break;
				}
			}
			finalDaLista ++;

		}
		return array;
	}

	private int[] swap(int[] array, int menor, int maior){
		int temporario = array[maior];
		array[maior] = array[menor];
		array[menor] = temporario;

		return array;
	}

}